package cn.sun.basic.sendmsg;

import org.apache.http.HttpResponse;

import java.util.HashMap;
import java.util.Map;

public class SmsCodeUtil {
    private static final String HOST = "https://intlsms.market.alicloudapi.com";
    private static final String PATH = "/comms/sms/groupmessaging";
    private static final String METHOD = "POST";
    private static final String APPCODE = "728b707cd1ec403e8fb62007512d7515";
    /**
     * 发送验证码 自己选择模板
     * @param phone 电话
     * @param templateID 模板id
     * @param code 验证码
     * @param outTime 失效时间
     */
    public static void sendSmsCode(String phone, String templateID, String code, String outTime){
        if (templateID == null){
            templateID = "templateID";
        }
        Map<String, String> headers = new HashMap<String, String>();
        //最后在header中的格式(中间是英文空格)为Authorization:APPCODE 83359fd73fe94948385f570e3c139105
        headers.put("Authorization", "APPCODE " + APPCODE);
        //根据API的要求，定义相对应的Content-Type
        headers.put("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
        Map<String, String> querys = new HashMap<String, String>();
        Map<String, String> bodys = new HashMap<String, String>();
        bodys.put("callbackUrl", "http://test.dev.esandcloud.com");
        bodys.put("channel", "0");
        bodys.put("mobileSet", "[86"+phone+"]");
        bodys.put("templateID", templateID);
        bodys.put("templateParamSet", "['"+code+"', '"+outTime+"']");
        try {
            /** 重要提示如下: * HttpUtils请从 * https:
             * //github.com/aliyun
             * /api-gateway-demo-sign- java/blob/master/src/main/java/com/aliyun/api/gateway/demo/util/HttpUtils.java
             * 下载 ** 相应的依赖请参照
             * https://github.com/aliyun/api-gateway-demo-sign- java/blob/master/pom.xml
             */
            HttpResponse response = HttpUtils.doPost(HOST, PATH, METHOD, headers, querys, bodys);
            System.out.println(response.toString());
            //获取response的body
            // System.out.println(EntityUtils.toString(response.getEntity()));
            } catch (Exception e) { e.printStackTrace();
        }
    }
        /** 发送验证码 使用默认模板
         * @param phone 电话
         * @param code 验证码
         * @param outTime 失效时间
         */
        public static void sendSmsCode(String phone,String code,String outTime){
            Map<String, String> headers = new HashMap<String, String>();
            //最后在header中的格式(中间是英文空格)为Authorization:APPCODE 83359fd73fe94948385f570e3c139105
            headers.put("Authorization", "APPCODE " + APPCODE);
            //根据API的要求，定义相对应的Content-Type
            headers.put("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
            Map<String, String> querys = new HashMap<String, String>();
            Map<String, String> bodys = new HashMap<String, String>();
            bodys.put("callbackUrl", "http://test.dev.esandcloud.com");
            bodys.put("channel", "0"); bodys.put("mobileSet", "[86"+phone+"]");
            bodys.put("templateID", "20201119155813");
            bodys.put("templateParamSet", "['"+code+"', '"+outTime+"']");
            try {
                /*** 重要提示如下: * HttpUtils请从
                 * https://github.com/aliyun/api-gateway-demo-sign- java/blob/master/src/main/java/com/aliyun/api/gateway/demo/util/HttpUtils.java
                 * 下载 ** 相应的依赖请参照
                 * https://github.com/aliyun/api-gateway-demo-sign- java/blob/master/pom.xml
                 */
           HttpResponse response = HttpUtils.doPost(HOST, PATH, METHOD, headers, querys, bodys);
           System.out.println(response.toString());
           //获取response的body
           //System.out.println(EntityUtils.toString(response.getEntity()));
                } catch (Exception e) {
                e.printStackTrace();
            }
        }
        public static void main(String[] args) {
            sendSmsCode("18716148446","556564545","5" );
        }
}
